JBoss Community Archive (Read Only)

Savara

SOA Lifecycle Governance

Design Time Governance

Design-time governance is concerned with ensuring that the resulting system correctly implements requirements (whether functional or non-functional).
A choreography description can be used to ensure that the implemented system meets the behavioural requirements.

The behavioural requirements can be captured as a collection of scenarios (e.g. sequence diagrams) with associated example messages.
This enables an unambiguous representation of the business requirements to be stored in a machine processable form, which can subsequently
be used to validate other phases of the SOA lifecycle.

Once the choreography description for the SOA has been defined, it can be validated against the scenarios,
to ensure that the choreography correctly handles all of the business requirements.

Once the service enters the implementation phase, it is important to ensure that it continues to adhere to the design
and therefore meets the business requirements. Currently this is achieved through the use of techniques such as continuous testing.
However this is only as reliable as the quality of the unit tests that have been written.

When a 'structured' implementation language has been used, such as WS-BPEL,
it will be possible to infer the behaviour of the service being implemented, to compare it against the choreography description.

Detecting incorrectly implemented behaviour at the earliest possible time saves on downstream costs associated with finding and fixing errors.
By using static validation against the original design, it ensures that the implemented service will deliver its expected behaviour first time.
This is important in building large scale SOAs where different services may be implemented in different locations.

There are two other areas where a choreography description can be used as part of design-time governance,
that are not currently implemented in SAVARA:

  • Service lookup – the choreography description can be used to determine if a service already exists in the Service Repository that meets the appropriate behavioural requirements.

  • Service unit testing - this can be achieved using the scenarios originally specified to document the behavioural requirements.
    Rather than develop an independent source of test data, the scenarios can be used to validate the sequence of messages sent to,
    and received from, a service, as well as validating the contents of the messages returned from the service under test.

Runtime Governance

Runtime governance ensures that the SOA executes as expected according to predefined policies. In this context, a choreography description can be used in two ways.

Service validator (Future feature)

The choreography description represents the interactions between multiple services to deliver a business goal.
To validate the behaviour of each individual service, within the choreography description, the behaviour of each service can be derived from the choreography.

The derived behaviour (or “endpoint projection”) of a service can be used within a 'service validator' to monitor the inbound and outbound messages for the service,
to ensure they conform to the expected behaviour.
If an invalid message is detected, it would be possible to block it, to prevent it from causing subsequent problems in downstream systems.
The error can also be reported to a central management capability.

The SAVARA runtime governance infrastructure will provide the ability to configure service validators to monitor the behaviour of individual services.

Process correlation (Future feature)

Validating each service locally can enable errors to be detected quickly, and the effects of the error prevented from contaminating other systems by blocking the erroneous messages.

However local service specific validation may not be adequate to identify errors that would affect the end-to-end business process.
Therefore the message activity at each service validator can be reported to a central 'process correlation engine' which can reconstitute a global view of the business transaction,
and determine if it matches the expected behaviour as defined in the choreography description.

The benefit of a correlated global view of the distributed business transaction is that it can be further analysed to ensure other governance polices have been followed – e.g. SLAs.

JBoss.org Content Archive (Read Only), exported from JBoss Community Documentation Editor at 2020-03-13 09:35:22 UTC, last content change 2012-02-05 19:15:07 UTC.